﻿#pragma once
#include "sfse_common/Types.h"

namespace Scaleform
{
    class Key
    {
    public:
        enum Code {
            None = 0,
            A = 65,
            B,
            C,
            D,
            E,
            F,
            G,
            H,
            I,
            J,
            K,
            L,
            M,
            N,
            O,
            P,
            Q,
            R,
            S,
            T,
            U,
            V,
            W,
            X,
            Y,
            Z,
            Num0 = 48,
            Num1,
            Num2,
            Num3,
            Num4,
            Num5,
            Num6,
            Num7,
            Num8,
            Num9,
            KP_0 = 96,
            KP_1,
            KP_2,
            KP_3,
            KP_4,
            KP_5,
            KP_6,
            KP_7,
            KP_8,
            KP_9,
            KP_Multiply,
            KP_Add,
            KP_Enter,
            KP_Subtract,
            KP_Decimal,
            KP_Divide,
            F1 = 112,
            F2,
            F3,
            F4,
            F5,
            F6,
            F7,
            F8,
            F9,
            F10,
            F11,
            F12,
            F13,
            F14,
            F15,
            Backspace = 8,
            Tab,
            Clear = 12,
            Return,
            Shift = 16,
            Control,
            Alt,
            Pause,
            CapsLock = 20,
            Escape = 27,
            Space = 32,
            PageUp,
            PageDown,
            End = 35,
            Home,
            Left,
            Up,
            Right,
            Down,
            PrintScreen = 44,
            Insert = 45,
            Delete,
            Help,
            NumLock = 144,
            ScrollLock = 145,
            LeftShift = 160,
            RightShift,
            LeftControl,
            RightControl,
            LeftAlt,
            RightAlt,
            Semicolon = 186,
            Equal = 187,
            Comma = 188,
            Minus = 189,
            Period = 190,
            Slash = 191,
            Bar = 192,
            BracketLeft = 219,
            Backslash = 220,
            BracketRight = 221,
            Quote = 222,
            OEM_AX = 0xE1,
            OEM_102 = 0xE2,
            ICO_HELP = 0xE3,
            ICO_00 = 0xE4,
            KeyCount
        };
    };
    
    class KeyModifiers
    {
    public:
        u8 States;
    };
}
